#ifndef RPCREADCONFFILE_HPP
#define RPCREADCONFFILE_HPP

//为了使业务解偶，我们直接新创建另一个类进行配置文件的读取
#include <iostream>
#include <unordered_map>

class RpcReadConfFile
{
public:
      //因为全局只需要一个_confMessage来储存配置信息，所以我们把这个类设置为单例模式
      static RpcReadConfFile& GetRpcReadConfFile();
      //读取配置信息
      void ReadConfFile(int argc,char** argv);
      //出去前后空格
      void Trim(std::string& str);
      //获取配置信息哈希表的配置文件
      std::string GetConfMapMessage(std::string key);
      //打印_confMessageMap里的所有配置（可以由RpcCommunicatinoFrame.hpp调用）
      void PrintAllConf();
private:
      RpcReadConfFile(){};

      RpcReadConfFile(const RpcReadConfFile&) = delete;
      RpcReadConfFile(const RpcReadConfFile&&) = delete;
      RpcReadConfFile& operator=(const RpcReadConfFile&) = delete;
      RpcReadConfFile& operator=(const RpcReadConfFile&&) = delete;
      //这map用来保存读取出来的信息，因为配置文件是不变的，所以我们直接把配置文件的ip和地址存放在容器中即可
      std::unordered_map<std::string,std::string> _confMessageMap;
};


#endif